The cloud computing environment is an enhancement to the predecessor grid environment, whereby multiple grids and other computation resources may be further abstracted by a cloud layer, thus making disparate devices appear to an end-user as a single pool of seamless resources. These resources may include such things as physical or logical compute engines, servers and devices, device memory, storage devices, networks, business applications and other software, and the like.
System virtualization is an important part of cloud computing. Systems are typically codified by an image in which the aspects of the system (e.g., software, configuration, etc.) are stored in a binary format. When a change is required to the base image, a new image is created to capture the latest state. For example, if a user installed or upgraded software on an instance created by a base image, a new image needs to be created to capture the additional changes. Existing image-based approaches, however, fail to take into account several considerations when generating a new image.